System and method for using metadata to cross-reference, search and display entries in a publishing system

ABSTRACT

The illustrative embodiment of the present invention provides a method for cross-referencing, searching and displaying entries in a document publishing system, such as a web-publishing system or a desktop publishing system. The document publishing system uses input data such as email messages, attachments to emails, web clippings, and directly input text from a user to create new documents. The illustrative embodiment assigns an entry identification number to each new entry, an item identification number to each segment of the entry, and user-assigned labels to user-selected subparts of each entry. The entry identification numbers, item identification numbers and labels are automatically cross-linked by a series of algorithms. The identification numbers and labels are cross-linked with stored references which are used to dynamically generate HTML links. Changes in the content of a entry are saved as updates, where the latest version of a entry is cross-linked to previous versions. The cross-linking of the entries enables a user to search back through time for the content of previous versions or alternatively, to see the latest version of a previous entry.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.10/003,773, now U.S. Pat. No. ______, entitled “A System and Method forCross-Referencing, Searching and Displaying Entries in a DocumentPublishing System, filed on Nov. 15, 2001, which claimed the benefit ofU.S. Provisional Patent Applications No. 60/248,909, 60/249,069 and60/249,070, all of which were filed on Nov. 15, 2000. The contents ofall of the aforementioned applications are hereby incorporated byreference in their entirety.

TECHNICAL FIELD

The illustrative embodiment of the present invention relates generallyto document publishing systems and more particularly to thecross-referencing, searching and displaying of entries in a webpublishing or desktop publishing system.

BACKGROUND OF THE INVENTION

Web publishing systems convert data into web pages capable of beingviewed by a user executing an XML interpreter or HTML interpreter suchas those found in web browsing software. Web publishing systems areusually implemented in the context of a network. Traditionally these webpages have been manually produced, although software enabling theautomatic generation of web pages has been growing in popularity inrecent years. These conventional methods of generating a web pageinvolve the use of stored data, the utilization of user input data, or acombination of both stored and user input data to produce a web page.These conventional automatically generated web pages present only alimited number of static data relationships between items referenced onthe web page. The relationships are fixed links which do not change asthe relationships in the underlying data change. Desktop publishingsystems also generate documents converted from raw data but areimplemented in the context of a stand-alone electronic device, usually acomputer.

Communications software, such as email systems used in office settings,process and store large amounts of data. Conventional methods ofretrieving data from the collection of stored data involve searching forthe data by means of a title, subject, or message content reference. Inthe case of email messages, this can require a user to sort through alarge number of emails containing identical subject lines without anymeans to distinguish one email from the next. Publishing systems workingwith these communications software packages have no effective means ofpresenting retrieved data to a user in a format that indicates therelationships between the presented piece of data and other pieces ofstored data. Conventional methods of document publishing also do notallow the presentment to a user of the changes in the relationshipbetween a piece of data and other data over time.

SUMMARY OF THE INVENTION

The illustrative embodiment of the present invention provides a methodfor cross-referencing, searching and displaying entries in a documentpublishing system. The publishing system uses input data such as emailmessages, attachments to emails, web clippings, and user input text, tocreate new documents, such as web pages viewable via a web browser.Unique identification numbers are automatically assigned to entries inthe publishing system and naturally occurring segments of entries, suchas headings and paragraphs separated by whitespace. User assigned labelsmay be attached to user selected segments of each entry. Theidentification numbers and labels are cross-linked by a series ofalgorithms. Changes in content of a entry are saved as updates with thelatest version cross-linked to previous versions. The labels applied tothe previous version of the entry are automatically applied to thecorresponding segments of the updated entry, even if the labeledsegments are updated or rearranged by the update action. Thecross-linking of entries enables users to search by time (content), bytopic (label), or both. Different versions of content in a entry may bedisplayed to a user such that the evolution of a entry over time isrevealed. Searching may also be conducted using labels or topics askeywords such that either user-attached labels or automaticallygenerated labels from the cross-linking algorithms are used to generatedocuments for users which display references to entries and/or itemscontaining the particular label or topic. Documents generated by theillustrative embodiment include links to other entries and/or itemswhich are associated with the content being displayed to the user. Theuser assigned labels also enable a search mechanism to quickly assembleuser-defined relevant portions of each entry while omitting extraneousmatters contained in the entries.

The cross-linking of entries enables users to search by the time whenentries were posted, by the time when reclassification actions weretaken, by topic labels associated with entries, by text content ofentries, or by the combination of any of these methods. The time slice,perspective (which controls which labels are displayed), level of detail(brief/full), and active search filter are collectively referred to asthe “viewspec”. The illustrated embodiment saves the last viewspecselected by a user for a given type of view, and selectively applies itto the subsequent web pages generated by the server for that user andthat type of view. A bulletin board feature contains entries that remaindisplayed on the newspage despite the user switching between Newspageviews with differing viewspecs. Different versions of content in anentry may be displayed to a user depending on the viewspec such that theevolution of an entry over time is revealed. A timeline may be generatedat user request tracing the evolution of an entry. Searching of theentries in the publishing system may also be conducted by a userentering search terms in a dialog box and the search capabilitiesinclude the ability to search a thematically grouped set of entries.

In one embodiment, unique identification values are assigned to eachentry in a group of entries. The entries are stored indexed by theirassigned ID. Each entry has associated with it a metastructurecontaining metadata. Subsequently, a new entry is created by alteringthe content of a selected one of the indexed entries. The new entry iscross-indexed with the selected entry. The metastructure is updated toreflect the time of the alteration. A subsequent user request for theselected entry results in the new entry being displayed as a document tothe user.

In another embodiment taking place in a network, a selected entry isstored and then updated to create a new entry. The new entry iscross-indexed with the selected entry and displayed in place of theselected entry upon a request for the selected entry. The display of thenew entry includes links back to the selected entry.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A depicts a block diagram of an environment suitable forpracticing the illustrative embodiment of the present invention;

FIG. 1B depicts a block diagram of an object held by the metastructureof FIG. 1A;

FIG. 2A is a flowchart of the sequence of steps followed by theillustrative embodiment in generating a web page for a new entry;

FIG. 2B is a flowchart of the sequence of steps followed by theillustrative embodiment in generating a web page for an updated entry;

FIG. 2C is a flowchart of the sequence of steps followed by theillustrative embodiment in generating a web page for a reclassifiedentry;

FIG. 3A depicts a web page generated by the illustrative embodiment ofthe present invention containing entry and item IDs;

FIG. 3B depicts a web page generated by a user clicking a label on theweb page of FIG. 3A;

FIG. 4A depicts a web page generated by the illustrative embodiment ofthe present invention with the time slice set to “today”;

FIG. 4B depicts the web page of FIG. 4A with updated content;

FIG. 4C depicts the web page of FIG. 4B with the content of item ID 01reclassified;

FIG. 4D depicts the web page of FIG. 4C with one of the labels attachedto the entry ID reclassified; and

FIG. 4E depicts a timeline for the changes to the web page depicted inFIG. 4A;

FIG. 5 depicts the use of perspective by the illustrative embodiment ofthe present invention;

FIG. 6A depicts an email to a server running the illustrative embodimentof the present invention;

FIG. 6B depicts the email of FIG. 6A converted to a web page by theillustrative embodiment of the present invention;

FIG. 6C depicts a web page generated from the web page of FIG. 6B byclicking on the topic priority which is displayed in “brief” mode;

FIG. 6D depicts a web page generated from the web page of FIG. 6B byclicking on the topic priority which is displayed in “full” mode;

FIG. 7 depicts a web page generated by the illustrative embodiment ofthe present invention containing a topic summary for the current timeslice;

FIG. 8A depicts an entry on a web page with an attachment; and

FIG. 8B depicts a web page summarizing the attachment of FIG. 8A.

DETAILED DESCRIPTION OF THE INVENTION

The illustrative embodiment of the present invention provides a methodfor cross-referencing, searching and displaying entries in a documentpublishing system. The publishing system uses input data such as emailmessages, attachments to emails, web clippings, and directly input textfrom a user to create new documents to display. The illustrativeembodiment assigns an entry identification number to each new entry, anitem identification number to each segment of the entry, and userassigned labels to user selected subparts of each entry. The entryidentification numbers, item identification numbers and labels areautomatically cross-linked by a series of algorithms. The identificationnumbers and labels are cross-linked with stored references which areused to dynamically generate HTML links. Changes in the content of aentry are saved as updates, where the latest version of a entry iscross-linked to previous versions. The cross-linking of the entriesenables a user to search back through time for the content of previousversions or alternatively, to see the latest version of a previousentry.

The illustrative embodiment of the present invention runs on a serverand accepts input data, such as email messages, attachments to emails,web clippings sent to the server, and text directly input by a user inorder to create new documents, such as web pages, for display. FIG. 1Adepicts one possible topology used by the illustrative embodiment. Aserver 2 includes volatile memory 3, such as RAM, holding communicationssoftware 4 and the web publishing system of the illustrative embodiment6. The server also includes a data structure which is referred to as a“journal” 7. The journal 7 is located in non-volatile memory, such as ona hard drive. The journal 7 is used to hold the input data used by theweb publishing system 6, including data passing through thecommunications software 4 such as emails and email attachments. The datais parsed and stored in metastructures 9 in the journal. The journal 7and the metastructures 9 are described in more detail below.Workstations 8, 10 and 12 are also connected to the server 2. The server12 is interfaced with a network 14. The network 14 may be any one ofnumber of different types of networks such as the Internet, a local areanetwork (LAN), a wide area network (WAN), an intranet, an extranet, or awireless network. Those skilled in the art will recognize that while theillustrative embodiment of the present invention is described throughoutwith reference to a web publishing system, the illustrative embodimentof the present invention is equally applicable to a desktop publishingsystem or other types of document publishing systems. Accordingly, allreferences contained herein to a web publishing system should beunderstood to encompass document publishing systems in general.

The input data for the web publishing system (i.e.: email messages,attachments to emails, web clippings sent to the server, and directlyinput text) is parsed and stored in the journal 7 as separate entries.The data may include complete documents or only portions of documents.References to other entries, updates and reclassifications are kept inmetastructures 9 stored in indices. The concepts of references, updatesand reclassifications used by the illustrative embodiment is explainedbelow. The metastructures 9 include grammar objects derived from thecontent recorded in the journal which express ternary relationships ofthe form “subject-verb-direct object”, for example “Lahive43 updatesLahive37” (updating refers to the process of changing the content of anentry and is discussed below). Additional information is occasionallyincluded with the grammar object, for example “Lahive39 reclassifiesLahive37.01 adding the label color” (reclassifying refers to the processof altering labels in an entry and is discussed below). The grammarobjects include dates for all contained references which allows for thereconstruction of entry relationships for any given point in time.

FIG. 1B depicts an object 16 held in the metastructure 9 in theillustrative embodiment of the present invention. The functionality ofthe metastructure 9 is described in detail below. The object 16encapsulates data structures including journal entry structures 200,project info structures 210, and global data structures 220. The journalentry structure 200 includes a project index 201 locating the entry in avector of project info structures and an entry index 202 selecting asingle entry from within a given project. The journal entry structure200 also includes an entry index 203 selecting the original entry in achain of updates in the project, and an entry index 204 selecting thelast entry in the chain of updates. The entry index 203 for the firstentry in a chain of updates in the project includes a pointer 205 to anarray of vectors of ternary relationships of the formsubject-verb-direct object where the direct object specifies theidentifier of the current entry, and a pointer 206 to an array ofvectors of ternary relationships of the form subject-verb, direct objectwhere the subject specifies the identifier of the current entry. Alsoincluded in the journal structure are a field which specifies where theparsed content of the entry is stored 207, represented as a locator idwithin a file containing the parsed content of all journal entries, afield 208 indicating the date and time the entry was posted and by whom,and a field 209 indicating the type of entry.

The project info structure 210 includes a reference 211 to a vector of“journal entry” structures recording metadata associated with each entrycreated within that project, and a reference to a hash table ofreferences to “label definition” structures 212. The label definitionstructure 212 include a field 213 recording when the label was created,by whom it was created, and the spelling of the label name. The labeldefinition structure 212 also includes a reference to a vector of “labelinstance” structures 214. The label instance structure 214 includes aunique identifier 215 of the journal entry and item number to which thelabel was added or removed (the “Subject” entry) and the uniqueidentifier 216 of the journal entry which performed the action of addingor removing the label (the “Direct Object” entry). The project infostructure 210 also includes a field 217 which records the spelling ofthe project's name, a vector 218 which records the spelling of eachlabel name created within the project, and a hash table 219 ofreferences to “label definitions” created within that project, indexedby label name.

The global structure 220 includes a vector 221 of references to each“label instance” which adds a label, a vector 222 of references to each“label instance” which removes a label, and a vector 223 of referencesto each “journal entry” within the journal.

The cross-linking of entries enables users to tailor their searchaccording to time and topic. Specific versions of content in an entrymay be displayed such that the evolution of an entry is displayed to auser. Searching may also be conducted by topic such that user-attachedlabels or the automatically generated labels are used to generate webpages for users which display references to entries and/or itemscontaining the particular label or topic. The web pages generated by theillustrated embodiment include links, in one embodiment, HTML links, toother entries and/or items which are associated with the content beingdisplayed to the user.

Each new group of input data is assigned a unique numerical identifierknown as an entry ID. A parser is used to segment each group of inputdata. In one embodiment, an XML parser is used to parse text at blanklines into paragraph sized blocks while HTML data is parsed into HTMLblock containers. Each parsed subpart of the entry is assigned a uniquenumerical identifier known as an item ID. FIGS. 6A and 6B which arediscussed below illustrate the process. In other embodiments, a parsermay segment the input data into individual characters for text data, orindividual data coordinates in the case of input audio or video data.The parser may segment the data in any manner which enables an item IDto be mapped to a specified segment.

After segmenting the data, the data can be generated as a web pagecapable of being displayed in a number of different ways to a user. Theuser may assign labels to the entry as a whole, or to selected segmentsof each entry. The labels are displayed when the entries are generatedas web pages. These labels may reflect the status of actions to be takenregarding the content contained in the entry such as “to do” or “done”,or they may reflect a user assigned description or topic for the contentin the entry such as “bug”.

The illustrative embodiment of the present invention generates web pagesfor new entries, updated entries, and reclassified entries. FIG. 2Adepicts the sequence of events occurring during generation of a web pagefor a new entry appended to the journal, an entry that has not beenpreviously parsed. Input data for the new entry is retrieved (step 24),either directly from a user or from stored data. The data is parsed intosegments, assigned an Item ID and the parsed data is appended to thejournal 7 (step 26). The journal functions as a sequential log thatcontains the content of all entries; the record of all of the labeladditions and removals (due to reclassification), the record of updates,and the cross-references between entries. The illustrative embodiment ofthe present invention contains a full-text index and the words containedin the input data are added to the vocabulary list of the full-textindex if they are not already present in the vocabulary list, and thelocation of each use of a vocabulary word is recorded in the index (step28). Cross-reference grammars occurring in the input data and labelsderived from the input data are added to the metastructure 9 (step 30).The updated metastructure 9 is then written to permanent memory 7 (step32). Upon receiving a user request (step 34), the metastructure 9 forthe new entry is consulted to determine the entries, relationships andlabels to be displayed (step 36). The cumulative effect is presented toa user as a web page with the actual content of the web page beingretrieved from the journal (step 38). The pointers contained in themetastructures 9 are used to generate HTML links on the web page toother items or other entries. Those skilled in the art will recognizethat the data may be presented to a user in other ways than as a webpage without departing from the scope of the present invention.

Entries created by the illustrative embodiment may be updated. Updatingan entry ripples back in time by automatically linking previous versionsof a entry to the new updated entry. The content of the original entryis still retrievable, but must be specifically requested by a user.Absent specific requests to the contrary, accessing the original entrywill present a user with the content and cross-references of thesuccessor entry (the entry which updates it). FIG. 2B depicts thesequence of events occurring during generation of a web page for anupdate entry, an entry that has previously been parsed and for which thecontent is being changed. In the event the input data represents anupdated entry, the same initial sequence is followed as occurs in thecase of a new entry. The input data for the update is retrieved (step40). The input data is then parsed into segments, the segments are eachassigned an Item ID, and the parsed data is appended to the journal(step 42). Words in the input data are added to the vocabulary list ofthe full-text index if they are not already present in the vocabularylist, and the location of each use of a vocabulary word is recorded inthe index (step 44). Cross-reference grammars and labels derived fromthe input data are added to the metastructure 9 (step 46). A “forwardingpointer” is also added to the metastructure 9 allowing the updatingentry to be delivered in place of the updated entry and the updatedmetastructure 9 is then written (step 48). Upon receiving a user request(step 50), the metastructures 9 are consulted to determine the entries,relationships and labels to be displayed, indirecting through a“forwarding pointer” to deliver the updated data (step 52). Thecumulative effect is presented to a user as a web page with the actualcontent of the web page being retrieved from the journal (step 54). Thepointers contained in the metastructures 9 are used to generate HTMLlinks on the web page/document to other items or other entries.

The user assigned labels enable a search mechanism to quickly assemble,for web publishing purposes, user-defined relevant portions of eachentry while leaving extraneous matters contained in the entries alone.The set of labels attached to a portion of an entry may be changed overtime by users. The labels represent classifications of the entry, and achange to the set of labels is therefore referred to as areclassification. Reclassifications ripple back through time to affectthe classifications contained in previous versions of the entry. When anentry is updated, the labels associated with a given segment identifiedby item id in the original entry are automatically applied to thesegment with the same item id in the updated entry (if the item id isnot deleted as part of the update action).

FIG. 2C depicts the sequence of events occurring during generation of aweb page for a reclassified entry. In the event of a reclassification,the input data containing the record of the reclassification is firstretrieved (step 58) and then is appended to the journal (step 60).Additional records are then added to metastructures 9 to reflect labelsadded and removed by the reclassification over the set of affectedentries or segments of entries (step 62). The updated metastructure 9 isthen written (step 64). Upon receiving a user request (step 66), themetastructures 9 are consulted to determine the entries, relationshipsand reclassified labels to be displayed (step 68). The cumulative effectis presented to a user as a web page (step 70) with the actual contentof the web page being retrieved from the journal. The pointers containedin the metastructures 9 are used to generate HTML links on the web pageto other items or other entries.

FIG. 3A depicts a web page 80 generated by the illustrative embodimentfrom information contained within two emails sent to the server. The twoemails, entitled “Mail Server Problems” and “email” are assigned theentry IDs Lahive32 (82) and Lahive33 (84) respectively. The content inboth emails is text and contained within a single paragraph and isreferenced as item Lahive32 item ID 01 (86) and Lahive33 item ID 01 (88)respectively. Lahive32 (82) has 3 separate labels “headline” 90, “bug”92, and “to do” 94 indexed to the entry ID. Lahive33 (84) has 4 labelsindexed to the entry ID, “update” 96, “headline” 98, “done” 100 and “bugfixed” 102. It also has a label “notice” 104 affixed to the contentmarked by the item ID 01 (88). The ability to affix labels to specificgroups of content within an entry enables searching and displaying ofselected information. Clicking on any of the labels with a mouse resultsin a new web page being generated by the illustrative embodiment whichcontains all the entries/items for which the specific labels apply (inthe selected time slice and perspective). FIG. 3B depicts a web page 110generated by clicking on the “notice” label 104 of FIG. 3A which showsall the entries in the selected time slice and perspective which containthe “notice” label.

The illustrative embodiment of the present invention allows a user toselect a time slice to be displayed. The time slice governs whichentries will be displayed to a user. In the embodiment depicted in FIG.3A, the available time slices are daily, weekly, monthly, quarterly,yearly and all time which may be selected by a user by clicking on thetime slice selector 106. FIG. 3A depicts a daily time slice.

The update process is depicted in the following series of illustrations.FIG. 4A depicts a web page 120 dynamically generated by the illustrativeembodiment at user request with the time slice selector 106 set to“today”. The “today” time slice lists all of the labels in this entrythat exist in the most recent version of the entry. The web page 120 isgenerated as a result of an email to the server running the illustrativeembodiment. The email, entitled “House”, is assigned the entry IDLahive37 (122) and contains the content “The house is red” which isgiven the item ID 01 (124). Labels “headline” 126 and “example” 128 areattached to the entry as a result of a designation contained in theemail. In one aspect of the embodiment, an email subject line maycontain an indicator, such as a punctuation mark (i.e.: colon), followedby a label. The label is then added to the metastructure 9 for the data.

FIG. 4B depicts the results of a user updating the content of Lahive37(122) by changing the entry content to “The house is green”. Theillustrative embodiment automatically generates an “update” label 130for Lahive37. A new entry Lahive38 is generated but is cross-linked tothe original entry Lahive37. The “update” label 130 is inserted intoLahive37 as if it had been there from the beginning when viewing theLahive37 entry in current perspective. The concept of “perspective” asused in the illustrative embodiment is addressed further below.

The set of labels associated with any entry or item may be changed overtime. This is called “reclassification”. Reclassification changes onlythe labels; the content of the entry or item remains the same. FIG. 4Cdepicts the reclassification of item ID 01 in Lahive37 by attaching thelabel “color” 132. Similarly FIG. 4D depicts the replacement of theentry label “example” 128 with the label “notice” 134. A user may alsoreclassify multiple entries at the same time by exchanging one label foranother. In one embodiment of the present invention, a user can add anew label, remove a label, or replace an existing label by clicking tothe side of a current entry or item. In another embodiment, the timeslice and perspective are retained when the user clicks on labels togenerate new web pages.

The illustrative embodiment maps any changes to an original entry into adata structure which can be used to produce a timeline of the entry.FIG. 4E represents a timeline for the updates and reclassifications ofLahive37 depicted in FIGS. 4A through 4D. The original email message isassigned the entry ID Lahive37 and listed as reclassifying itselfbecause it contains original labels, and adding labels is always treatedas a reclassification 140. The update which changed the content from“The house is red” to “The house is green” creates a new entry Lahive38which updates and cross-links to the original entry Lahive37 (142). Theaddition of the label color attached to the item 01 in Lahive37 causesthe creation of a new entry Lahive39 which cross-links to the originalentry Lahive37 (144). The subtraction of the label “example” and theaddition of the label “notice” creates a new entry Lahive40 whichcross-links to the original entry Lahive37 (146). By tracking thechanges to the original entry and automatically cross-linking newlycreated entries to the original entry the illustrative embodiment isable to present the data contained in the entries to a user from anumber of different time perspectives. The content can be tracked as itchanges over time and the updated information presented from any of thecross-linked entries.

In one embodiment of the invention, metastructures 9 are used to accessentries by entry ID, label, date, or relationship, and update thecontent or relationships among entries. The metastructures 9 includememory resident data structures (and corresponding disk residentrepresentations) of a journal entry structure, a “project info”structure, and a global store structure. The journal entry structureincludes a combination of a project index and an entry index whichtogether uniquely locate a particular entry within a journal. Theproject index locates that entry in a vector of “project info”structures, while the entry index selects a single “journal entry”structure within the given project. The journal entry structure alsoincludes an entry index which selects the original entry of a chain ofupdates within that project, and an entry index which selects the lastentry of a chain of updates within that project. A field specifies wherethe parsed content of the entry is stored, and is represented as alocator ID within a file containing the parsed content of all of thejournal entries. For the original entry of a chain of updates, thejournal structure includes a pointer to an array of vectors of ternaryrelationships of the form subject—verb—direct object, where the subjectand direct object are unique entry identifiers, and the subjectspecifies the unique identifier of the current entry (“Outgoingreferences”). Also included for an original entry in the journalstructure is a pointer to an array of vectors of ternary relationshipsof the form subject—verb—direct object, where the subject and directobject are unique entry identifiers, and the direct object specifies theunique identifier of the current entry (“Incoming references”). Fieldswhich record the date and time that the entry was posted, and by whomthe entry was posted, are also included in the journal structure.Additional fields which record the type of entry, including the typesof: new entry, update entry, and label re-classification entry are alsoincluded in the journal entry structure.

The metastructures also includes a vector of “project info” structures.The project info structures are referenced by a project index value andinclude a reference to a vector of “journal entry” structures whichrecord metadata associated with each entry created within that project.Also included in each project info structure is a reference to a hashtable of references to “label definition” structures created within thatproject, indexed by label name. The label definition structures containfields recording when the label was created, by whom it was created, andthe spelling of the label name. The label definition structure alsocontains a reference to a vector of “label instance” structures. Thelabel instance structures include the unique identifier of the journalentry and the item number to which the label was added or removed (the“Subject” entry) and the unique identifier of the journal entry whichperformed the action of adding or removing the label (the “DirectObject” entry). The project info structure also includes a vector whichrecords the spelling of the project's name, a vector which records thespelling of each label name created within the project, and a hash tableof references to “label definitions” created within that project,indexed by name.

A global data structure stores data for non-project scoped searchrequests, and includes separate data structures for a vector ofreferences to each “label instance” which adds a label, a vector ofreferences to each “label instance” which removes a label, and a vectorof references to each “journal entry” within the journal. Those skilledin the art will recognize that different data structures allowingsimilar functionality may be substituted for the describedmetastructures 9 without departing from the scope of the presentinvention.

Entry ID cross-references appearing in entries are tracked and stored inmetastructures. An Entry ID cross-reference may be represented as anexplicit part of an entry, or may be recognized while parsing thecontent of the entry. One embodiment of the present invention recognizesthe occurrence of a project name followed by a number as across-reference to a designated entry, (for example “Lahive36”) or aspecific item within that entry (“Lahive36.02”). Whenever an entry “I”references another entry/item “J”, a grammar object representing therelationship “I references J” is stored in the metastructure 9associated with the entry ID. This relationship can be made visible inboth the referencing and referenced entry. One embodiment of the presentinvention renders a textual reference to a project name and entry number(“Lahive36”) as an HTML link to the current version of the content ofthe referenced entity. Updates to the referencing entry which add orremove Entry ID cross-references result in creation or deletion ofactive cross-references. Updates applied to the referenced entity allowthe most current updated content to be displayed when an Entry IDreference to that entry is followed. These cross-references areavailable for a user to inspect by clicking the appropriate button on adisplayed web page.

The illustrative embodiment of the present invention also allows a userto select the perspective to be depicted on the displayed web page.Whereas the time slice governs which entries to include in the documentspublished for a users viewing, the perspective governs whichreclassifications to apply to the view. The “current perspective” showsthe net effect of all of the label additions and removals. By settingthe perspective to a certain date, the view shows the net effect of allof the label additions and removals that took place by a given date. Bysetting a range of dates for the perspective, the user's view willinclude the net effect of all label additions and removals up until thebeginning of the range and all of the additions taking place during therange. By setting the perspective to “all time”, the view will includeall of the labels added without showing the net effect of labelremovals. By combining the time slice selector setting 52 with theperspective setting, the illustrative embodiment enables the rapid andflexible presentation of information to a user.

Three types of topic view are supported. In the “normal” topic view theentries displayed are those entries which were posted during theselected time slice, and which, for the specified perspective, had thespecified label or labels associated with one or more items. Forexample, entries posted last week which would have been displayed withthe “to do” label during the weekend. The “added” topic view displaysthose entries to which a specified label was added during a particulartime slice, regardless of when the entry itself was posted. For example,all of the entries to which the label “done” was added today. The“removed” topic view. displays those entries from which a specifiedlabel was removed during a particular time slice, regardless of when theentry itself was posted. For example, all of the entries from which thelabel “to do” was removed last Thursday.

The illustrated embodiment of the present invention enables thepresentation of data to a user from a number of different viewpoints.The presentation of data to the user is accomplished through the use ofa user selected “time slice” and a user selected “perspective”. The timeslice represents a selected period of time. The web page 150 depicted inFIG. 5, has available time slice sizes on a time slice size selector 106representing the selected day, the selected week, the selected month,the selected quarter and the selected year. A user can select the timeslice by clicking on one of the choices. The user may also enter a timeslice range into the rapid selector 152. The selected time slice isdisplayed in a time slice display area 154 located between the rapidselector 152 and the time slice selector 106. The selected time slice isa user selected range Nov. 8, 2000-Nov. 13, 2000. Clicking the leftarrow shifts the time slice backward in time by the selected time slicesize; the right arrow shifts the time slice forward in time by theselected time slice size. The perspective governs whichreclassifications to apply to the view. Like the time slice, theperspective is also changed by a user entering codes into the rapidselector 152. The perspective is displayed in the perspective displayarea 156. In FIG. 5, the “current perspective” is displayed. The“current perspective” shows the net effect of all of the label additionsand removals. By setting the perspective to a certain date, the viewshows the net effect of all of the label additions and removals for anentry/item that took place by a given date. By setting a range of datesfor the perspective, the user's view will include the net effect of alllabel additions and removals up until the beginning of the range and allof the additions taking place during the range. By setting theperspective to “all time”, the view will include all of the labels addedwithout showing the net effect of label removals. By combining the timeslice setting with the perspective setting, the illustrated embodimentenables the rapid and flexible presentation of information to a user.

Clicking on any of the labels 158, 160, 162 and 164 with a mouse resultsin a new web page being generated by the illustrated embodiment whichcontains all the links referenced by the specific labels. For example,clicking on the notice label 162 will generate a web page entitled“notice” which shows all the entries in the time slice containing thenotice label. An HTML link under the “notice” label 162 references atable which contains pointers to all of entries containing the label“notice”. The data from the entries containing the label “notice 162 isused to generate a new web page for display to the user. The “RelatedEntries” section 166 indicates that this entry has previously undergone3 reclassifications 168, the addition/removal of labels, and 1 update170, the changing of content. The labels which are presented depend uponthe selected perspective.

In addition to the ability to conduct searches by time and topic, theillustrated embodiment of the present invention also provides a userwith the capability to conduct full text content searches which areconfined to a particular time slice. In the event a user enters a textbased search into the rapid selector 152, the web publishing systemconsults the metatstructure indices to determine which entries fallwithin the selected time slice. Once those entries are identified, thecontent of the entries is pulled from the journal and searched formatches with the user-entered search terms. In addition to contentmatches within the time slice, the user may further qualify the searchrequest to return content matches only for entries or items to whichspecified labels have been applied in a selected perspective. The searchresults are then further refined so that only the latest version of anentry (as indicated by “forwarding pointers” contained in themetastructure 9 indices) is returned for the user. This refinement ofsearch results prevents a user from being overwhelmed with duplicativeand out-of-date data. Alternatively, the user may specifically requestthe search return the different versions of the same entry.

In a workgroup setting, the addition of a label to an entry can be usedto control workflow. In one embodiment, restrictions are placed on usersviewing entries created by others. In such an embodiment, the placing ofa label exposes the entry to others otherwise not privileged to see theentry, by allowing them to see the entry in response to a search keyedto the placed label. In an alternative embodiment, the placing of alabel will not expose the entry to those who were not otherwised clearedto see the entry. In some embodiments, the ability to add labels toentries in a project is restricted to certain individuals.

In another embodiment, a user has the capability to email a serverrunning the illustrated embodiment and have the email stored as an entryby the web publishing system. The user may specify labels for the entryby using specific notation in the email. The server reads a mailboxwhich receives emails sent to a specified email address. FIG. 6A depictsan email 174 sent to a server running the illustrated embodiment. In oneembodiment, the notation “:headline” 176 causes a headline label toattach to the entry. Entries/items labeled “headline” are displayed onthe newspage. The notation “+:priority” 178 causes a new label“priority” to be created and assigns the “priority” label to the secondparagraph of the entry. FIG. 6B depicts the message of FIG. 4A displayedas a web page 180. The “headline” label 182 is affixed to the entry IDLahive45 (186) and the “priority” label 184 is affixed to the Lahive45item ID 02 (188). Clicking on the “priority” label 184 generates a newweb page containing all of the entries and items in the time slice andperspective which are labeled with “priority” labels. FIG. 6C depicts aweb page 190 generated by clicking the “priority” label 184 of the webpage 180 depicted in FIG. 6B. The web page 190 listing the references tothe “priority” label may be displayed in “brief” mode as indicated inFIG. 6C by clicking on a mode button 192. In brief mode, only theitem/entry labeled is displayed. Alternatively, the web page may bedisplayed in “full” mode. A user may switch between views by clicking onthe mode button 192 on the toolbar. FIG. 6D depicts the web page of FIG.6C in full mode. The entry content is completely listed, not just thelabeled paragraph 184.

The illustrated embodiment of the present invention includes thecapability of displaying all of the labels/topics which are activeduring the applicable time slice given the specified perspective. FIG. 7depicts a web page 200 laid out in a newspage format. The web page 200includes a “bulletin board” area 202. The web page 200 lists all of theactive topics in a column 204. The topics represent links and clickingon any of them will generate a new web page summarizing all theentries/items labeled with the particular topic. The bulletin board 202allows a user to post a message that will always be seen in the newspageregardless of the user selected time slice. In order to add an entry tothe bulletin board section 202 of every Newspage generated, the userapplies the label “:bulletin” to the entry. In order to remove an entryfrom the bulletin board 202, the user removes the “:bulletin” label fromthe entry.

In another embodiment of the illustrated invention, a user may displayinformation about documents attached to entries. FIG. 8A depicts a webpage 206 generated by clicking on the message title “Attachment Example”or the entry ID Lahive47 (208). The original email contains anattachment Traction.doc 210 which appears as a separate item (03) on theweb page 206. A user may click on the attachment link 212 to receivedetails about all of the attachments attached to the entry displayed,Lahive47 (208). FIG. 8B depicts an attachments web page 214 generated bythe illustrated embodiment which includes an Attachment column 216listing the attachment Traction.doc 98 and an entry column 218 with theentry Lahive47.

In one embodiment, in an electronic device, a medium holdscomputer-executable instructions for providing a plurality of entriescontaining data. The instructions also assign an entry identificationnumber (“entry ID”) which is a unique value to each of the entries. Theinstructions also store each entry indexed by its entry ID and alter aselected one of the entries to create a new entry. The new entry has anentry ID assigned that is cross-indexed with the selected entry. Theinstructions further update a metastructure associated with the selectedentry to indicate the time the selected entry was altered and displaythe new entry in response to requests for the selected entry. In oneaspect, the instructions parse the selected entry into segments andassign an item ID having a unique value to each of the segments. Theinstructions also update the metastructure of the selected entry toinclude a reference to the item ID. In another aspect, the instructionsattach a label to at least one of the segments and cross-index the labelwith the segment, the selected entry and with a table of other entriescontaining segments with the label.

It will thus be seen that the invention attains the objectives stated inthe previous description. Since certain changes may be made withoutdeparting from the scope of the present invention, it is intended thatall matter contained in the above description or shown in theaccompanying drawings be interpreted as illustrative and not in aliteral sense. Practitioners of the art will realize that the sequenceof steps depicted in the figures may be altered without departing fromthe scope of the present invention and that the illustrations containedherein are singular examples of a multitude of possible depictions ofthe present invention.

1. A computer-implemented method, comprising: parsing with a computingprocess on a computing device a selected entry containing data into oneor more segments, at least one labeled segment referred to by a label;updating with the computing process metadata associated with theselected entry to cross-reference the labeled segment in the selectedentry with one or more segments in at least one other entry that aremarked with the label; editing, with the computing process, the selectedentry, the editing performing at least one of the following: modifyingthe content of a segment of the selected entry; changing the ordering ofone or more segments within the selected entry; deleting the labeledsegment; adding at least one new segment to the selected entry; anddeleting at least one segment other than the labeled segment from theselected entry; updating, with the computing process, the metadata forthe selected entry to reflect the effect of the editing; and displaying,based on the updated metadata that reflects the result of the editing, alisting of segments cross-referenced with the label, the displayingexcluding segments marked with the label that were deleted by theediting.
 2. The method of claim 1 wherein the displaying displays thelisting constrained to a set of entries that were created in a selectedtime period.
 3. The method of claim 1 wherein the displaying onlydisplays, based on the updated metadata that reflects the result of theediting, a listing of segments containing one or more segmentscross-referenced with the label that were added during a selected timeperiod.
 4. The method of claim 1 wherein the displaying only displays,based on the updated metadata that reflects the result of the editing, alisting of segments containing one or more segments cross-referencedwith the label that were removed during a selected time period.
 5. Themethod of claim 1, further comprising: specifying using the computingprocess a specified entry which has previously been created or edited;changing, with the computing process, at least one label associated withone or more segments of the specified entry, the changing performing atleast one of the following: adding at least one label to a segment ofthe specified entry; and removing at least one label from a segment ofthe specified entry; updating, with the computing process, metadata forthe specified entry to reflect the effect of the changing; anddisplaying, based on the updated metadata that reflects the result ofthe changing, a listing of segments containing one or more segmentscross-referenced with at least one label added or removed by thechanging.
 6. The method of claim 1 further comprising: selecting aperspective to apply to the cross-referencing of labels and segments,the perspective being a date reference; and displaying, based on theupdated metadata that reflects the result of the editing, only a listingof segments containing one or more segments cross-referenced with thelabel as of the perspective date.
 7. The method of claim 1, furthercomprising: selecting a perspective to apply to the cross-referencing oflabels and segments, the perspective being a date range reference; anddisplaying, based on the updated metadata that reflects the result ofthe editing, only a listing of segments containing one or more segmentscross-referenced with the label at a time within the perspective daterange.
 8. The method of claim 1, further comprising: displaying, basedon the updated metadata that reflects the result of the editing, alisting of at least one entry that contains a segment cross-referencedwith the label, the displaying excluding entries containing segmentsmarked with the label that were deleted by the editing.
 9. Acomputer-implemented method, comprising: parsing with a computingprocess on a computing device a selected entry containing data into oneor more segments; updating with the computing process metadataassociated with the selected entry to cross-reference a designatedsegment in the selected entry with one or more other segments, themetadata updated to express a type of relationship existing between thedesignated segment and the one or more other segments; editing, with thecomputing process, the selected entry, the editing performing at leastone of the following: modifying the content of a segment of the selectedentry; changing the ordering of one or more segments within the selectedentry; deleting the designated segment; adding at least one new segmentto the selected entry; and deleting at least one segment other than thedesignated segment from the selected entry; updating, with the computingprocess, the metadata for the selected entry to reflect relationshipchanges between the designated segment and the one or more othersegments caused by the editing; and displaying, based on the updatedmetadata that reflects the relationship changes caused by the editing, alisting of segments cross-referenced with the designated segment, thedisplaying excluding segments that were deleted by the editing.
 10. Themethod of claim 9 wherein the displaying displays the listingconstrained to a set of entries that were created in a selected timeperiod.
 11. The method of claim 9 wherein the displaying only displays,based on the updated metadata that reflects the relationship changescaused by the editing, a listing of segments cross-referenced with thedesignated segment that were added during a selected time period. 12.The method of claim 9 wherein the displaying only displays, based on theupdated metadata that reflects the relationship changes caused by theediting, a listing of segments cross-referenced with the designatedsegment that were removed during a selected time period.
 13. The methodof claim 9 further comprising: selecting a perspective to apply to thecross-referencing of the designated segment and the one or more othersegments, the perspective being a date reference; and displaying, basedon the updated metadata that reflects the result of the editing, only alisting of segments containing one or more segments cross-referencedwith the designated segment as of the perspective date.
 14. The methodof claim 9, further comprising: selecting a perspective to apply to thecross-referencing of the designated segment and the one or more othersegments, the perspective being a date range reference; and displaying,based on the updated metadata that reflects the result of the editing,only a listing of segments containing one or more segmentscross-referenced with the designated segment at a time within theperspective date range.
 15. The method of claim 9, further comprising:displaying, based on the updated metadata that reflects the result ofthe editing, a listing of one or more entries that contain a segmentcross-referenced with the designated segment.
 16. A computer-readablestorage medium holding computer-executable instructions that uponexecuting cause a computing device to: parse with a computing process ona computing device a selected entry containing data into one or moresegments, at least one labeled segment referred to by a label; updatewith the computing process metadata associated with the selected entryto cross-reference the labeled segment in the selected entry with one ormore segments in at least one other entry that are marked with thelabel; edit, with the computing process, the selected entry, the editingperforming at least one of the following: modifying the content of asegment of the selected entry; changing the ordering of one or moresegments within the selected entry; deleting the labeled segment; addingat least one new segment to the selected entry; and deleting at leastone segment other than the labeled segment from the selected entry;update, with the computing process, the metadata for the selected entryto reflect the effect of the editing; and display, based on the updatedmetadata that reflects the result of the editing, a listing of segmentscross-referenced with the label, the displaying excluding segmentsmarked with the label that were deleted by the editing.
 17. The mediumof claim 16 wherein the displaying displays the listing constrained to aset of entries that were created in a selected time period.
 18. Themedium of claim 16 wherein the displaying only displays, based on theupdated metadata that reflects the result of the editing, a listing ofsegments containing one or more segments cross-referenced with the labelthat were added during a selected time period.
 19. The medium of claim16 wherein the displaying only displays, based on the updated metadatathat reflects the result of the editing, a listing of segmentscontaining one or more segments cross-referenced with the label thatwere removed during a selected time period.
 20. The medium of claim 16wherein the medium further holds instructions that when executed causethe computing device to: specify using the computing process a specifiedentry which has previously been created or edited; change, with thecomputing process, at least one label associated with one or moresegments of the specified entry, the changing performing at least one ofthe following: adding at least one label to a segment of the specifiedentry; and removing at least one label from a segment of the specifiedentry; update, with the computing process, metadata for the specifiedentry to reflect the effect of the changing; and display, based on theupdated metadata that reflects the result of the changing, a listing ofsegments containing one or more segments cross-referenced with at leastone label added or removed by the changing.
 21. The medium of claim 16wherein the medium further holds instructions that when executed causethe computing device to: select a perspective to apply to thecross-referencing of labels and segments, the perspective being a datereference; and display, based on the updated metadata that reflects theresult of the editing, only a listing of segments containing one or moresegments cross-referenced with the label as of the perspective date. 22.The medium of claim 16 wherein the medium further holds instructionsthat when executed cause the computing device to: select a perspectiveto apply to the cross-referencing of labels and segments, theperspective being a date range reference; and display, based on theupdated metadata that reflects the result of the editing, only a listingof segments containing one or more segments cross-referenced with thelabel at a time within the perspective date range.
 23. The medium ofclaim 16 wherein the medium further holds instructions that whenexecuted cause the computing device to: display, based on the updatedmetadata that reflects the result of the editing, a listing of at leastone entry that contains a segment cross-referenced with the label, thedisplaying excluding entries containing segments marked with the labelthat were deleted by the editing.
 24. A computer-readable storage mediumholding computer-executable instructions that upon executing cause acomputing device to: parse with a computing process on a computingdevice a selected entry containing data into one or more segments;update with the computing process metadata associated with the selectedentry to cross-reference a designated segment in the selected entry withone or more other segments, the metadata updated to express a type ofrelationship existing between the designated segment and the one or moreother segments; edit, with the computing process, the selected entry,the editing performing at least one of the following: modifying thecontent of a segment of the selected entry; changing the ordering of oneor more segments within the selected entry; deleting the designatedsegment; adding at least one new segment to the selected entry; anddeleting at least one segment other than the designated segment from theselected entry; update, with the computing process, the metadata for theselected entry to reflect relationship changes between the designatedsegment and the one or more other segments caused by the editing; anddisplay, based on the updated metadata that reflects the relationshipchanges caused by the editing, a listing of segments cross-referencedwith the designated segment, the displaying excluding segments that weredeleted by the editing.
 25. The medium of claim 24 wherein thedisplaying displays the listing constrained to a set of entries thatwere created in a selected time period.
 26. The medium of claim 24wherein the displaying only displays, based on the updated metadata thatreflects the relationship changes caused by the editing, a listing ofsegments cross-referenced with the designated segment that were addedduring a selected time period.
 27. The medium of claim 24 wherein thedisplaying only displays, based on the updated metadata that reflectsthe relationship changes caused by the editing, a listing of segmentscross-referenced with the designated segment that were removed during aselected time period.
 28. The medium of claim 24 wherein the mediumfurther holds instructions that when executed cause the computing deviceto: select a perspective to apply to the cross-referencing of thedesignated segment and the one or more other segments, the perspectivebeing a date reference; and display, based on the updated metadata thatreflects the result of the editing, only a listing of segmentscontaining one or more segments cross-referenced with the designatedsegment as of the perspective date.
 29. The medium of claim 24 whereinthe medium further holds instructions that when executed cause thecomputing device to: select a perspective to apply to thecross-referencing of the designated segment and the one or more othersegments, the perspective being a date range reference; and display,based on the updated metadata that reflects the result of the editing,only a listing of segments containing one or more segmentscross-referenced with the designated segment at a time within theperspective date range.
 30. The medium of claim 24 wherein the mediumfurther holds instructions that when executed cause the computing deviceto: display, based on the updated metadata that reflects the result ofthe editing, a listing of one or more entries that contain a segmentcross-referenced with the designated segment.